#include "pch.hpp"
#include "Device.hpp"

#include "Win32Device.hpp"




Engine::Input::Device::Device()
	: pressed(m_pressed)
	, clicked(m_clicked)
{}
///////////////////////////////////////////////////////////////////////////////////////////////////




QString Engine::Input::Device::name() const
{
	return "InputDevice";
}
///////////////////////////////////////////////////////////////////////////////////////////////////




bool Engine::Input::Device::keyPressed(Key::Type k) const
{
	return key(k).pressed();
}
///////////////////////////////////////////////////////////////////////////////////////////////////

bool Engine::Input::Device::keyClicked(Key::Type k) const
{
	return key(k).clicked();
}
///////////////////////////////////////////////////////////////////////////////////////////////////

bool Engine::Input::Device::keyDown(Key::Type k) const
{
	return key(k).down();
}
///////////////////////////////////////////////////////////////////////////////////////////////////




Engine::Input::Device::ptr Engine::Input::Device::create(const EngineInfo& info)
{
	switch(info.inputDevice)
	{
	case Win32: return boost::make_shared<Win32Device>(info);
	default: BOOSTEXT_THROW(invalid_value_exception(info.inputDevice));
	}
}
///////////////////////////////////////////////////////////////////////////////////////////////////
